home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX 6.2 Development Libraries
/
SGI IRIX 6.2 Development Libraries.iso
/
dist
/
complib.idb
/
usr
/
share
/
catman
/
p_man
/
cat3
/
complib
/
SVD.z
/
SVD
Wrap
Text File
|
1996-03-14
|
5KB
|
133 lines
____SSSSVVVVDDDD((((3333FFFF)))) ____SSSSVVVVDDDD((((3333FFFF))))
NNNNAAAAMMMMEEEE
SVD, SSVD - EISPACK routine. This subroutine determines the
singular value decomposition
T A=USV of a REAL M by N rectangular matrix. Householder
bidiagonalization and a variant of the QR algorithm are used.
SSSSYYYYNNNNOOOOPPPPSSSSYYYYSSSS
ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ssssvvvvdddd((((nnnnmmmm,,,, mmmm,,,, nnnn,,,, aaaa,,,, wwww,,,, mmmmaaaattttuuuu,,,, uuuu,,,, mmmmaaaattttvvvv,,,, vvvv,,,, iiiieeeerrrrrrrr,,,, rrrrvvvv1111))))
iiiinnnntttteeeeggggeeeerrrr nnnnmmmm,,,, mmmm,,,, nnnn,,,, iiiieeeerrrrrrrr
ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn aaaa((((nnnnmmmm,,,,nnnn)))),,,, wwww((((nnnn)))),,,, uuuu((((nnnnmmmm,,,,nnnn)))),,,, vvvv((((nnnnmmmm,,,,nnnn)))),,,, rrrrvvvv1111((((nnnn))))
llllooooggggiiiiccccaaaallll mmmmaaaattttuuuu,,,, mmmmaaaattttvvvv
ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ssssssssvvvvdddd((((nnnnmmmm,,,, mmmm,,,, nnnn,,,, aaaa,,,, wwww,,,, mmmmaaaattttuuuu,,,, uuuu,,,, mmmmaaaattttvvvv,,,, vvvv,,,, iiiieeeerrrrrrrr,,,, rrrrvvvv1111))))
iiiinnnntttteeeeggggeeeerrrr nnnnmmmm,,,, mmmm,,,, nnnn,,,, iiiieeeerrrrrrrr
rrrreeeeaaaallll aaaa((((nnnnmmmm,,,,nnnn)))),,,, wwww((((nnnn)))),,,, uuuu((((nnnnmmmm,,,,nnnn)))),,,, vvvv((((nnnnmmmm,,,,nnnn)))),,,, rrrrvvvv1111((((nnnn))))
llllooooggggiiiiccccaaaallll mmmmaaaattttuuuu,,,, mmmmaaaattttvvvv
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
On Input
NNNNMMMM must be set to the row dimension of two-dimensional array parameters
as declared in the calling program dimension statement. Note that NM
must be at least as large as the maximum of M and N.
MMMM is the number of rows of A (and U).
NNNN is the number of columns of A (and U) and the order of V.
AAAA contains the rectangular input matrix to be decomposed.
MMMMAAAATTTTUUUU should be set to .TRUE. if the U matrix in the decomposition is
desired, and to .FALSE. otherwise.
MMMMAAAATTTTVVVV should be set to .TRUE. if the V matrix in the decomposition is
desired, and to .FALSE. otherwise. On Output
AAAA is unaltered (unless overwritten by U or V).
WWWW contains the N (non-negative) singular values of A (the diagonal
elements of S). They are UNORDERED. If an error exit is made, the
singular values should be correct for indices IERR+1,IERR+2,...,N.
UUUU contains the matrix U (orthogonal column vectors) of the decomposition
if MATU has been set to .TRUE. Otherwise U is used as a temporary array.
U may coincide with A. If an error exit is made, the columns of U
corresponding to indices of correct singular values should be correct.
VVVV contains the matrix V (orthogonal) of the decomposition if MATV has
been set to .TRUE. Otherwise V is not referenced. V may also coincide
PPPPaaaaggggeeee 1111
____SSSSVVVVDDDD((((3333FFFF)))) ____SSSSVVVVDDDD((((3333FFFF))))
with A if U is not needed. If an error exit is made, the columns of V
corresponding to indices of correct singular values should be correct.
IIIIEEEERRRRRRRR is set to Zero for normal return, K if the K-th
singular value has not been
determined after 30 iterations.
RRRRVVVV1111 is a temporary storage array. CALLS PYTHAG(A,B) for sqrt(A**2 +
B**2). Questions and comments should be directed to B. S. Garbow,
APPLIED MATHEMATICS DIVISION, ARGONNE NATIONAL LABORATORY
PPPPaaaaggggeeee 2222